home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / PASCAL / ALLSWAGS.ZIP / SWAGN-R.ZIP / NETWORK.SWG / 0041_Netware 3.11 API Library - File Server.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-11-29  |  6.5 KB  |  285 lines

  1. {
  2.             ╔══════════════════════════════════════════════════╗
  3.             ║     ┌╦═══╦┐┌╦═══╦┐┌╦═══╦┐┌╦═╗ ╦┐┌╦═══╦┐┌╔═╦═╗┐   ║
  4.             ║     │╠═══╩┘├╬═══╬┤└╩═══╦┐│║ ║ ║│├╬══      ║      ║
  5.             ║     └╩     └╩   ╩┘└╩═══╩┘└╩ ╚═╩┘└╩═══╩┘   ╩      ║
  6.             ║                                                  ║
  7.             ║     NetWare 3.11 API Library for Turbo Pascal    ║
  8.             ║                      by                          ║
  9.             ║                S.Perevoznik                      ║
  10.             ║                     1996                         ║
  11.             ╚══════════════════════════════════════════════════╝
  12. }
  13. Unit NetSrv;
  14. { Working with file-server}
  15.  
  16. Interface
  17.  
  18. Function  CheckConsolePrivileges : boolean;
  19. {true, if user is console operator}
  20.  
  21. Function EnableFileServerLogin : byte;
  22. { enable login on file server }
  23.  
  24. Function DisableFileServerLogin : byte;
  25. { disable user's login on file server}
  26.  
  27. Function  EnableTransactionTracking : byte;
  28. { enable transaction tracking }
  29.  
  30. Function  DisableTransactionTracking : byte;
  31. { disable transaction tracking }
  32.  
  33. Function DownFileServer(ForceFlag : integer) : byte;
  34. { Down File server}
  35.  
  36. Function ClearConnectionNumber(connectionNumber : word) : byte;
  37. { clear connection}
  38.  
  39. Function GetFileServerDescriptionStrings(Var DString: string) : byte;
  40. { return file server description string}
  41.  
  42. Procedure Logout;
  43. { logout from network}
  44.  
  45.  
  46. Implementation
  47.  
  48. Uses Dos;
  49.  
  50. Function  CheckConsolePrivileges : boolean;
  51. Var
  52.   r : registers;
  53.   SendPacket  : array [0..3] of byte;
  54.   ReplyPacket : array [0..2] of byte;
  55.   WordPtr     : ^Word;
  56.  
  57. Begin
  58.   SendPacket[2] := 200;
  59.   WordPtr  := addr(SendPacket);
  60.   WordPtr^ := 1;
  61.   WordPtr  := addr(ReplyPacket);
  62.   WordPtr^ := 0;
  63.   r.BX := r.DS;
  64.   r.AH := $0E3;
  65.   r.DS := SEG(SendPacket);
  66.   r.SI := OFS(SendPacket);
  67.   r.ES := SEG(ReplyPacket);
  68.   r.DI := OFS(ReplyPacket);
  69.   intr($21,r);
  70.   r.DS := r.BX;
  71.   if r.AL = 0 then CheckConsolePrivileges := true
  72.     else CheckConsolePrivileges := false;
  73. End;
  74.  
  75. Function EnableFileServerLogin : byte;
  76. Var
  77.   r : registers;
  78.   SendPacket  : array [0..3] of byte;
  79.   ReplyPacket : array [0..2] of byte;
  80.   WordPtr     : ^Word;
  81.  
  82. Begin
  83.   SendPacket[2] := 204;
  84.   WordPtr  := addr(SendPacket);
  85.   WordPtr^ := 1;
  86.   WordPtr  := addr(ReplyPacket);
  87.   WordPtr^ := 0;
  88.   r.BX := r.DS;
  89.   r.AH := $0E3;
  90.   r.DS := SEG(SendPacket);
  91.   r.SI := OFS(SendPacket);
  92.   r.ES := SEG(ReplyPacket);
  93.   r.DI := OFS(ReplyPacket);
  94.   intr($21,r);
  95.   r.DS := r.BX;
  96.   EnableFileServerLogin := r.AL;
  97. end;
  98.  
  99. Function DisableFileServerLogin : byte;
  100. Var
  101.   r : registers;
  102.   SendPacket  : array [0..3] of byte;
  103.   ReplyPacket : array [0..2] of byte;
  104.   WordPtr     : ^Word;
  105.  
  106. Begin
  107.   SendPacket[2] := 203;
  108.   WordPtr  := addr(SendPacket);
  109.   WordPtr^ := 1;
  110.   WordPtr  := addr(ReplyPacket);
  111.   WordPtr^ := 0;
  112.   r.BX := r.DS;
  113.   r.AH := $0E3;
  114.   r.DS := SEG(SendPacket);
  115.   r.SI := OFS(SendPacket);
  116.   r.ES := SEG(ReplyPacket);
  117.   r.DI := OFS(ReplyPacket);
  118.   intr($21,r);
  119.   r.DS := r.BX;
  120.   DisableFileServerLogin := r.AL;
  121.  
  122. end;
  123.  
  124. Function  EnableTransactionTracking : byte;
  125. Var
  126.   r : registers;
  127.   SendPacket  : array [0..3] of byte;
  128.   ReplyPacket : array [0..2] of byte;
  129.   WordPtr     : ^Word;
  130.  
  131. Begin
  132.   SendPacket[2] := 208;
  133.   WordPtr  := addr(SendPacket);
  134.   WordPtr^ := 1;
  135.   WordPtr  := addr(ReplyPacket);
  136.   WordPtr^ := 0;
  137.   r.BX := r.DS;
  138.   r.AH := $0E3;
  139.   r.DS := SEG(SendPacket);
  140.   r.SI := OFS(SendPacket);
  141.   r.ES := SEG(ReplyPacket);
  142.   r.DI := OFS(ReplyPacket);
  143.   intr($21,r);
  144.   r.DS := r.BX;
  145.   EnableTransactionTracking := r.AL;
  146.  
  147. end;
  148.  
  149. Function  DisableTransactionTracking : byte;
  150.  
  151. Var
  152.   r : registers;
  153.   SendPacket  : array [0..3] of byte;
  154.   ReplyPacket : array [0..2] of byte;
  155.   WordPtr     : ^Word;
  156.  
  157. Begin
  158.   SendPacket[2] := 207;
  159.   WordPtr  := addr(SendPacket);
  160.   WordPtr^ := 1;
  161.   WordPtr  := addr(ReplyPacket);
  162.   WordPtr^ := 0;
  163.   r.BX := r.DS;
  164.   r.AH := $0E3;
  165.   r.DS := SEG(SendPacket);
  166.   r.SI := OFS(SendPacket);
  167.   r.ES := SEG(ReplyPacket);
  168.   r.DI := OFS(ReplyPacket);
  169.   intr($21,r);
  170.   r.DS := r.BX;
  171.   DisableTransactionTracking := r.AL;
  172.  
  173. end;
  174.  
  175. Function DownFileServer(ForceFlag : integer) : byte;
  176. Var
  177.   r : registers;
  178.   SendPacket  : array [0..4] of byte;
  179.   ReplyPacket : array [0..2] of byte;
  180.   WordPtr     : ^Word;
  181.  
  182. Begin
  183.   SendPacket[2] := 211;
  184.   SendPacket[3] := ForceFlag or $FF00;
  185.   WordPtr  := addr(SendPacket);
  186.   WordPtr^ := 2;
  187.   WordPtr  := addr(ReplyPacket);
  188.   WordPtr^ := 0;
  189.   r.BX := r.DS;
  190.   r.AH := $0E3;
  191.   r.DS := SEG(SendPacket);
  192.   r.SI := OFS(SendPacket);
  193.   r.ES := SEG(ReplyPacket);
  194.   r.DI := OFS(ReplyPacket);
  195.   intr($21,r);
  196.   r.DS := r.BX;
  197.   DownFileServer := r.AL;
  198.  
  199. end;
  200.  
  201. Function ClearConnectionNumber(connectionNumber : word) : byte;
  202. Var
  203.   r : registers;
  204.   SendPacket  : array [0..4] of byte;
  205.   ReplyPacket : array [0..2] of byte;
  206.   WordPtr     : ^Word;
  207.  
  208. Begin
  209.   SendPacket[2] := 210;
  210.   SendPacket[3] := ConnectionNumber;
  211.   WordPtr  := addr(SendPacket);
  212.   WordPtr^ := 2;
  213.   WordPtr  := addr(ReplyPacket);
  214.   WordPtr^ := 0;
  215.   r.BX := r.DS;
  216.   r.AH := $0E3;
  217.   r.DS := SEG(SendPacket);
  218.   r.SI := OFS(SendPacket);
  219.   r.ES := SEG(ReplyPacket);
  220.   r.DI := OFS(ReplyPacket);
  221.   intr($21,r);
  222.   r.DS := r.BX;
  223.   ClearConnectionNumber := r.AL;
  224.  
  225. end;
  226.  
  227. Function GetFileServerDescriptionStrings(Var DString     : string) : byte;
  228.  
  229.  
  230.   var
  231.     WordPtr:^Word;
  232.     r:registers;
  233.     SendPacket  : array[0..3] of byte;
  234.     ReplyPacket : array[0..514] of byte;
  235.     i           : integer;
  236.  
  237.     begin
  238.       SendPacket[2] := $C9;
  239.       WordPtr := addr(SendPacket);
  240.       WordPtr^:=1;
  241.       WordPtr := addr(ReplyPacket);
  242.       WordPtr^ := 514;
  243.       r.ah := $E3;
  244.       r.BX := r.DS;
  245.       r.ds := seg(SendPacket);
  246.       r.si := ofs(SendPacket);
  247.       r.es := seg(ReplyPacket);
  248.       r.di := ofs(ReplyPacket);
  249.       intr($21,r);
  250.       r.DS := r.BX;
  251.       GetFileServerDescriptionStrings := r.AL;
  252.       if r.AL = 0
  253.         then
  254.         begin
  255.            i := 32;
  256.            move(ReplyPacket[2],DString[1],32);
  257.            move(i,DString[0],1);
  258.        end;
  259.           end;
  260.  
  261. Procedure Logout;
  262. Var
  263.   r : registers;
  264.   SendPacket  : array [0..2] of byte;
  265.   ReplyPacket : array [0..2] of byte;
  266.   WordPtr     : ^Word;
  267.  
  268. Begin
  269.   WordPtr  := addr(SendPacket);
  270.   WordPtr^ := 0;
  271.   WordPtr  := addr(ReplyPacket);
  272.   WordPtr^ := 0;
  273.   r.BX := r.DS;
  274.   r.AH := 215;
  275.   r.DS := SEG(SendPacket);
  276.   r.SI := OFS(SendPacket);
  277.   r.ES := SEG(ReplyPacket);
  278.   r.DI := OFS(ReplyPacket);
  279.   intr($21,r);
  280.   r.DS := r.BX;
  281.  
  282. end;
  283.  
  284. End.
  285.